#pragma once

#include "Controller.h"

#include <boost/signal.hpp>

#include "../domain/models/CardsCollection.h"
#include "../domain/models/Player.h"
#include "../views/abstract/IBoardView.h"

namespace Controllers {

	class BoardController: public Controller
	{
		Views::IBoardView* view;
		Players::Player* player;
		Cards::RoomsCards rooms;

		void changePlayerPosition();
		void setPlayerPosition(BoardItems::Room*);
		void moveToRoom(Players::Player* player, BoardItems::WeaponPiece* weapon, BoardItems::Room* room);

	public:
		boost::signal<void ()> movePerformedEvent;

		BoardController(Players::Player*);

		void perform();
	};

}

